[C] Arquivos e Stat
Publicado por Enzo de Brito Ferber (última atualização em 23/09/2010)
[ Hits: 8.393 ]
Homepage: http://www.maximasonorizacao.com.br
Programa simples mostrando como usar a função stat(), e como manipular aquivos de uma forma bem simples. Ponteiros também são usados.
Baixe:
$ tar -xzvf loadfile.tar.gz
$ cd loadfile
$ ./loadfile text
;)
[]'s
/* loadfile.c */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> int main ( int argc, char *argv[] ) { char *fullfile, *p, *p2, c ; struct stat fileinfo; FILE *openfile; if ( argc < 2 ) { printf ( "[*] Usage: %s <file>\n", argv[0] ); exit ( EXIT_FAILURE ); } /* read-binary permission */ openfile = fopen ( argv[1], "rb" ); if ( !openfile ) { printf ( "[*] Can't open file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* file info for file size */ if ( stat ( argv[1], &fileinfo ) == -1 ) { printf ( "[*] Can't stat() file %s\n", argv[1] ); exit ( EXIT_FAILURE ); } /* alloc memory for the pointer * * fileinfo.st_size = size of the file in bytes */ fullfile = ( char * ) malloc ( fileinfo.st_size * sizeof ( char )); if ( !fullfile ) { printf ( "[*] Can't malloc() %d bytes\n", fileinfo.st_size ); exit ( EXIT_FAILURE ); } /* To view all the resources of the stat structure: * * $ man stat */ printf ( "File info:\n" ); printf ( "UID : %d\n", fileinfo.st_uid ); printf ( "GID : %d\n", fileinfo.st_gid ); printf ( "Size: %d bytes\n", fileinfo.st_size ); printf ( "Mode: %8.8x\n", fileinfo.st_mode ); /* reference pointer */ p = fullfile; while ( 1 ) { if ( feof ( openfile )) break; fscanf ( openfile, "%c", &(*(p++)) ); } /* print file */ p2 = fullfile; while ( fullfile < p ) putchar ( *(fullfile++) ); /* put back in place what you use */ free ( p2 ); fclose ( openfile ); return 0; }
Fwn - Formatador de arquivos .txt
Exemplo de manipulação de arquivos
Agenda (fones, compromissos, aniversários) em C usando arquivos binários
Nenhum coment�rio foi encontrado.
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)